10
09/2014
node server.js
copy server.js to the WWW folder,then in the terminal run
node server.js
open browser visit
var http = require("http"), url = require("url"), path = require("path"), fs = require("fs") port = process.argv[2] || 8888; var mimeTypes = { "htm": "text/html", "html": "text/html", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "gif": "image/gif", "js": "text/javascript", "css": "text/css", "json": "application/json" }; var virtualDirectories = { //"images": "../images/" }; http.createServer(function(request, response) { var uri = url.parse(request.url).pathname , filename = path.join(process.cwd(), uri) , root = uri.split("/")[1] , virtualDirectory; virtualDirectory = virtualDirectories[root]; if(virtualDirectory){ uri = uri.slice(root.length + 1, uri.length); filename = path.join(virtualDirectory ,uri); } path.exists(filename, function(exists) { if(!exists) { response.writeHead(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); console.error('404: ' + filename); return; } if (fs.statSync(filename).isDirectory()) filename += '/index.html'; fs.readFile(filename, "binary", function(err, file) { if(err) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(err + "\n"); response.end(); console.error('500: ' + filename); return; } var mimeType = mimeTypes[path.extname(filename).split(".")[1]]; response.writeHead(200, {"Content-Type": mimeType}); response.write(file, "binary"); response.end(); console.log('200: ' + filename + ' as ' + mimeType); }); }); }).listen(parseInt(port, 10)); console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown");
via node-static-http-server by James Wanga
Another method
You can use Connect with NodeJS for this:
- Install connect with NPM
npm install connect
- Create server.js file with this content:
var connect = require('connect'); connect.createServer( connect.static(__dirname) ).listen(8080);
- Run with NodeJS
node server.js
You can now go to http://localhost:8080/yourfile.html